package com.hhh.Controller;

import com.hhh.Dto.DishDto;
import com.hhh.Pojo.Result;
import com.hhh.Service.DishService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Slf4j
@RequestMapping("/dish")
public class DishController {
    @Autowired
    DishService dishService;

    //    查询菜品
//    查询菜品
//    查询菜品
    @GetMapping("/page")
    public Result SelectAll(@RequestParam long page, @RequestParam long pageSize, String name) {
        log.info("查询菜品");
        return Result.success(dishService.SelectAll(page, pageSize, name));
    }

    //    添加菜品
//    添加菜品
//    添加菜品
    @PostMapping()
    public Result Insert(@RequestBody DishDto dishDto) {
        log.info("添加菜品");
        return Result.success(dishService.Insert(dishDto));
    }

    //    修改菜品
//    调用的是添加菜品的函数
//    这个只是用来返回前端菜品数据的
    @GetMapping("/{id}")
    public Result Update(@PathVariable long id) {
        return Result.success(dishService.SelectById(id));
    }

    //    修改菜品
//    修改菜品
//    修改菜品
    @PutMapping()
    public Result Update(@RequestBody DishDto dishDto) {
        return Result.success(dishService.Upate(dishDto));
    }

    //    根据分类id查询菜品
//    根据分类id查询菜品
//    根据分类id查询菜品
    @GetMapping("/list")
    public Result SelectByCategoryId(@RequestParam long categoryId) {
        log.info("根据分类id查询菜品");
        return Result.success(dishService.SelectByCategoryId(categoryId));
    }

    //   更改dish的status
    //   更改dish的status
    //   更改dish的status
    @PostMapping("/status/{status}")
    public Result Updatestatus(@PathVariable Integer status, @RequestParam List<Long> ids) {
        log.info("更改dish的status");
        return Result.success(dishService.Updatestatus(status, ids));
    }

    //    删除菜品
//    删除菜品
//    删除菜品
    @DeleteMapping()
    public Result Delete(@RequestParam List<Long> ids) {
        log.info("删除菜品");
        return Result.success(dishService.Delete(ids));
    }
}
